package com.chenjj.scala.traits

/**
  * Trait用法
  * 1.Trait 类似JAVA的接口，实际上在编译之后也会编译程JAVA的接口
  * 2.当一个类实现了Trait(with XXX)，这个类叫做混入类
  */
object Main {

  def main(args: Array[String]): Unit = {
    val john = new Man({if(1>2) "Samll-John" else "Old-John"})
    val sara = new Woman("Sara")
    val comet = new Dog("Comet")

    john.listen()
    sara.listen()
    comet.listen()

    println("=====================================")

    val manBestFriend:Friend = comet
    manBestFriend.listen()

    println("=====================================")

    def helpAsFriend(friend: Friend)  ={
      friend.listen()
    }

    helpAsFriend(sara);
    helpAsFriend(comet)

  }

}
